package com.oig.sys.auth.service;

import com.oig.common.module.SysPageInfo;
import com.oig.common.module.SysRequest;
import com.oig.sys.auth.dto.UserDto;
import com.oig.sys.auth.vo.UserVo;

import java.util.List;


/**
 * @author wuxl
 */
public interface ITbUserService {


    UserVo getUserInfo(Integer userId);

    UserVo addUser(UserDto userDto);

    UserVo updateUser(UserDto userDto);

    void updatePwd(UserDto userDto);

    void setDefaultSystem(Integer systemId, String systemName);

    void updateUserDefSystemName(Integer systemId, String systemName, String systemImageUrl);

    void cleanUserDefSystem(Integer systemId);

    void resetPwd(Integer userId);

    void cancelUser(Integer userId);

    void revertUser(Integer userId);

    void delUser(Integer userId);

    void cancelUserNotInListId(List<Integer> userIdList, Integer tenantId);




    SysPageInfo<UserVo> listAllUser(SysRequest<UserDto> userRequest);


    List<UserVo> listAllTenantUser(Integer tenantId);
    List<UserVo> listAllDeptUser(Integer deptId);


    UserVo loadUserByCodeOrUsername(String username);


    UserVo getUserById(Integer userId);

    UserVo getUserByCode(String code);

    void updateLoginSucess(UserDto userDto);

    void updateLoginFail(UserDto userDto);

    UserVo addOrUpdateUser(UserDto userDto);

    List<UserVo> listUserByUserIdList(List<Integer> userIdList);

    List<UserVo> listUserByUserCodeList(List<String> userCodeList);

}
